package com.qf.entity;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.List;

/**
 * 分页对象
 * description:
 * author: Ken
 * 公众号：Java架构栈
 */
@Data
@Accessors(chain = true)
public class Page<T> {

    //第几页
    private Integer page;
    //每页多少条
    private Integer pageSize;
    //总页码
    private Integer pageCount;
    //总的记录数
    private Integer pageSum;
    //当前分页导航栏的 页码列表
    private List<Integer> index = new ArrayList<>();
    //当前页的数据列表
    private List<T> datas;

    /**
     * 设置总页码 - 5  前两页 当前页 后两页
     * @return
     */
    public Page setPageCount(Integer pageCount){
        this.pageCount = pageCount;

        int begin = page - 2;
        if (begin < 1) {
            begin = 1;
        }
        int end = begin + 4;
        if (end > pageCount) {
            end = pageCount;
            begin = Math.max(1, end - 4);
        }

        //计算分页导航的页码列表
        for (int i = begin; i <= end; i++) {
            index.add(i);
        }
        return this;
    }
}
